In a digital world, images are regularly represented by a rectangular array of regularly sampled elements referred to as pixels. Each pixel is represented by one or more values that specifies the color and intensity of the pixel. An image so represented, is said to be rasterized. Digitally presented motion pictures, such as those encoded using MPEG, MPEG 2 and MPEG 4 standards are decoded and ultimately presented as raster images.
Raster images, unlike vector images, have a defined size. As such, there is often a need to scale existing images to a desired or required size. Many raster scaling techniques are therefore known and understood. For example, a common scaling technique replicates (up-samples) pixels and averages adjacent pixels.
Known techniques, however, typically operate on the entire image, and thus do not lend easily themselves to scaling streamed images in real time. As well, they typically calculate and store intermediate versions of a scaled image. Moreover, they do not lend themselves to flexible implementation in hardware. Although some hardware scaling circuits are known, most of these are inflexible, and best suited to scale images by a fixed scaling ratio. More flexible image scaling is possible using software. Software image scaling, however, typically requires some computing power, and as such is not favored in integrated circuit designs.
Accordingly, an improved method and associated devices for scaling raster images are desirable.